1
Il paradigma funzionale: Trasformazione invece di Mutazione
AI019Lesson 2
00:00

Il paradigma funzionale sposta il modello mentale dello sviluppatore da "aggiornare una scatola con stato" a applicare trasformazioni matematiche a valori immutabili. In Elixir, i dati non vengono mai modificati; vengono semplicemente rigenerati in nuove forme.

1. L'affermazione matematica

Quando scrivi $x = a + 1$, non stai assegnando un risultato a una variabile. Invece, stai semplicemente affermando che le espressioni $x$ e $a + 1$ hanno lo stesso valore. Questo riflette la logica algebrica in cui $x$ rappresenta un valore fisso in un contesto specifico.

2. Immutabilità come garanzia

In Elixir, tutti i valori sono immutabili. I dati non possono essere modificati una volta creati. Questo elimina gli "effetti collaterali" in cui una funzione potrebbe modificare inaspettatamente una variabile globale o un oggetto passato, garantendo che il codice sia prevedibile e sicuro per il threading.

PRIMA (Input)"elixir"String.capitalizeDOPO (Risultato)"Elixir"I dati originali rimangono invariati

3. Trasformazione vs. Mutazione

Non modifichiamo mai i dati sul posto. Elixir non ha l'assegnazione; invece, cerca di corrispondere i valori ai pattern. Per "modificare" un valore, passiamo i dati originali attraverso una funzione per produrre una versione completamente nuova.

iex> name = "elixir"
"elixir"
iex> cap_name = String.capitalize name
"Elixir"
iex> name
"elixir" (Ancora intatto!)
main.py
TERMINALbash — 80x24
> Ready. Click "Run" to execute.
>